﻿// ==========================================================
// File: XingNet.Web.Model.Class2.cs
// Created: 03.03.2015
// Created By: Tim cadenbach
// 
// Copyright (C) 2015 Tim Cadenbach
// License: Apache License 2.0
// ==========================================================

using Newtonsoft.Json;

namespace XingNet.Web.Model.v1_users
{
  public class Likes
  {
    [JsonProperty("current_user_liked")]
    public bool CurrentUserLiked { get; set; }

    [JsonProperty("type")]
    public string Type { get; set; }

    [JsonProperty("amount")]
    public int Amount { get; set; }
  }

  public class Creator
  {
    [JsonProperty("type")]
    public string Type { get; set; }

    [JsonProperty("id")]
    public string Id { get; set; }
  }

  public class LatestComment
  {
    [JsonProperty("creator")]
    public Creator Creator { get; set; }

    [JsonProperty("created_at")]
    public string CreatedAt { get; set; }

    [JsonProperty("content")]
    public string Content { get; set; }

    [JsonProperty("type")]
    public string Type { get; set; }

    [JsonProperty("id")]
    public string Id { get; set; }
  }

  public class Comments
  {
    [JsonProperty("current_user_commented")]
    public bool CurrentUserCommented { get; set; }

    [JsonProperty("latest_comments")]
    public LatestComment[] LatestComments { get; set; }

    [JsonProperty("type")]
    public string Type { get; set; }

    [JsonProperty("amount")]
    public int Amount { get; set; }
  }

  public class Actor
  {
    [JsonProperty("type")]
    public string Type { get; set; }

    [JsonProperty("id")]
    public string Id { get; set; }
  }

  public class Creator2
  {
    [JsonProperty("type")]
    public string Type { get; set; }

    [JsonProperty("id")]
    public string Id { get; set; }
  }

  public class Object
  {
    [JsonProperty("type")]
    public string Type { get; set; }

    [JsonProperty("id")]
    public string Id { get; set; }

    [JsonProperty("creator")]
    public Creator2 Creator { get; set; }

    [JsonProperty("created_at")]
    public string CreatedAt { get; set; }

    [JsonProperty("content")]
    public string Content { get; set; }

    [JsonProperty("description")]
    public string Description { get; set; }

    [JsonProperty("title")]
    public string Title { get; set; }

    [JsonProperty("image")]
    public string Image { get; set; }

    [JsonProperty("url")]
    public string Url { get; set; }
  }

  public class NetworkActivity
  {
    [JsonProperty("changes")]
    public string[] Changes { get; set; }

    [JsonProperty("aggregated")]
    public bool Aggregated { get; set; }

    [JsonProperty("aggregated_by")]
    public object AggregatedBy { get; set; }

    [JsonProperty("created_at")]
    public string CreatedAt { get; set; }

    [JsonProperty("ids")]
    public string[] Ids { get; set; }

    [JsonProperty("likes")]
    public Likes Likes { get; set; }

    [JsonProperty("comments")]
    public Comments Comments { get; set; }

    [JsonProperty("actors")]
    public Actor[] Actors { get; set; }

    [JsonProperty("type")]
    public string Type { get; set; }

    [JsonProperty("possible_actions")]
    public string[] PossibleActions { get; set; }

    [JsonProperty("objects")]
    public Object[] Objects { get; set; }

    [JsonProperty("verb")]
    public string Verb { get; set; }
  }

  public class NetworkActivitiesResponse
  {
    [JsonProperty("network_activities")]
    public NetworkActivity[] NetworkActivities { get; set; }
  }
}